package com.lane.innerclass;

/*
内部类(Inner Class)就是定义在另外一个类里面的类，与之对应，包涵内部类的类被称为外部类。
内部类的作用如下：
1.内部类提供了更好的封装， 可以把内部类隐藏在外部类之内，不允许同一个包中的其他类访问该类。
2.内部类的方法可以直接访问外部类的所有数据，包含私有的数据。
3.内部类所实现的功能使用外部类同样可以实现，只是有时使用内部类更方便。

内部类的种类： 成员内部类  静态内部类  方法内部类   匿名内部类
*/

/*
 Java中的成员内部类 
*/
public class MemberInnerClass {
	//外部类的私有属性name
    private String name = "outClassName";
    
    //外部类的成员属性
    int age = 20;
    
    //成员内部类Inner
    public class Inner {
        String name = "内部类";
        //内部类中的方法
        public void show() { 
            System.out.println("外部类中的name：" + MemberInnerClass.this.name );
            System.out.println("内部类中的name：" + name );
            System.out.println("外部类中的age：" + age);
        }
    }
    
    //测试成员内部类
    public static void main(String[] args) {
        //创建外部类的对象
        MemberInnerClass o = new MemberInnerClass (); 
        //创建内部类的对象
        Inner inn = o.new Inner();   
        //调用内部类对象的show方法
        inn.show();
    }
}